General Guidelines
Unity Basics #Before you start working on a particular''' scene''' in Unity make sure that no one else is working on it. #Use prefabs 'whenever possible, and work on the prefab instead of the individual objects in the scene. #'Structure '''the objects in the scene using empty game objects so it is easier for everyone to find what they are looking for (f.x. make an empty game object called “Triggers” and put all trigger objects in to it). Pipeline procedures Since we have more programmers than artists, and this game is heavily art-based, '''programmers and not artists will put assets into the build. That means artists will not need to connect to the asset server at all. That also means it the responsibility of the programmers to make sure the Unity project is well organized. When an asset is done, the procedure is as follows: #Make sure it adhers to naming conventions. That goes for the filename but also for anything inside the model (groups, animation names, ...) #Make sure it is saved in the correct format. If you worked in a different format, convert it to the correct one. #Put it into the appropriate folder on dropbox. #Update the Trello board, and if you're aware someone is waiting on your work, notify that person or his lead. If you're out of space on your personal dropbox, create a new dropbox account for use in this project. Asset Naming Conventions While you can of course call stuff whatever you want while you work with them, when you pass them on in the pipeline, asset naming must follow these conventions: #'Use' descriptive names. Don't save files as animation001.fbx, model001.fbx, untitled.png or so on. Instead call them Walk.fbx, Duck.fbx, Gore.png or whatever else describes what the file is. On the other hand, don't go overboard (e.g. don't name a file SquawkForThePinkDuckWhenItsFlyingOverTheNiceFields.fbx). Be reasonable. #'Use' camel casing '''(with the first letter uppercased), which means every word will have its first letter capitalized, and spaces are not used. Like so: ThisIsRight.fbx. Not like this: this_is_wrong.fbx, thisisalsowrong.fbx, andSoIsThis.fbx, and this.fbx. #When creating a '''new version of a file, do not append "new", "updated", or anything like that. Either save it with the same name (if you're replacing it, we have source control for old versions) or use append something that describes what is different (e.g. for a more skippy version of Walk.fbx, use call WalkSkippy.fbx). If you absolutely must, append an underscore and an increasing number, e.g. Walk.fbx becomes Walk_1.fbx, then Walk_2.fbx and so on. #'Do not' include the asset type in the name. These are all wrong: DuckModel.fbx, SquawkSound.wav, FeatherTexture.png. Asset types can always be recognized by their filename extension, apart from animations which can be recognized from having an at-sign (@) in the name. These are right: Duck.fbx, Squawk.wav, Feather.png. These conventions go for filenames but also for internal elements in models and animations: *Materials *Animations *Groups *Anything else File formats As far as possible, strive to use these fileformats for appropriate asset types: Unity Project Folder Structure We will use the same Unity project folder structure as we did in the minigame: *'Doodads': Decorative objects, possibly interactable. **'_Shared': Assets shared between more doodads ***'Scripts' ***''any other groups can be added here'' **''DoodadName: Where ''DoodadName ''is the name of the doodad (no numbering please). Assets specific for one doodad. ***'Animations': Only animations (ie chest@open.fbx) ***'Effects''' ***'Materials' ***'Models' ***'Scripts' ***'Sounds' ***'Textures' ***''Prefab here'' **''...'' *'Puzzles': Everything related to puzzles (same structure as Doodads) **'_Shared' ***'...' **''PuzzleName'' ***''...'' ***''Prefab'' **''...'' *'Editor ' **'Gizmos': Icons used to mark stuff in the editor **'Scripts': Custom editor scripts *'Global Scripts': Scripts that really really can't belong anywhere else *'HUD': Anything related to what is presented in an overlay while the game is played **'Fonts' **'Textures' **'Scripts' *'Player': Everything related to the player. **'Animations' **'Effects' **'Materials' **'Models' **'Scripts' **'Sounds' **'Textures' **''Prefab'' *''Levels''' **'_Shared' ***'Effects' ***'Materials' ***'Models' ***'Prefabs' ***'Sounds' ***'Textures' **'''''LevelName ***'Any required folders, see _Shared above **...'' *'Localization: Localization files *'Scenes' **'CutScenes' **'Levels' **'Menus' **'Tests' *'Standard Assets': Anything imported from Unity. Category:Browse Category:Guidelines